package com.dingwen.treasure.jwt.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Configuration;

/**
 * 　JWTProperties: JWT 配置
 * 　@author dingwen
 * 　@date 2022/6/12
 *
 */
@Configuration(proxyBeanMethods = false)
@ConfigurationProperties(prefix = "treasure.security.jwt")
@RefreshScope
@Data
public class JwtProperties {

    /**
     * 头信息： 默认值： authorization
     */
    private String header = "Authorization";

    /**
     *  令牌前缀： 默认值 Bearer
     */
    private String tokenPrefix= "Bearer ";

    /**
     * 令牌密钥: 最少长度 32
     */
    private String secretKey= "38329cc9d1b1496da21700d02ecd0690c348930073f";

    /**
     * 过期时间 分钟
     */
    private Long appExpireTime = 5L;
    private Long webExpireTime = 20L;

    /**
     * 刷新时间 秒 （剩余毫秒数（过期时间 - 当前时间） < 刷新时间 进行刷新）
     */
    private Long appRefreshTime = 10L;
    private Long webRefreshTime = 120L;

    /**
     * 令牌签发者
     */
    private String issuer = "treasure";

    /**
     * 令牌签发主题
     */
    private String subject = "auth";
}
